gtk: Remove debug updates
authorBenjamin Otte <otte@redhat.com>
Wed, 28 Mar 2018 14:06:32 +0000 (16:06 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 5 Apr 2018 12:56:38 +0000 (14:56 +0200)
With the soon-to-arrive automatic updates (aka computing invalid region
from render nodes), this will no longer be necessary.

gtk/gtkdebug.h
gtk/gtkdebugupdates.c [deleted file]
gtk/gtkdebugupdatesprivate.h [deleted file]
gtk/gtkmain.c
gtk/gtktextview.c
gtk/gtkwidget.c
gtk/gtkwindow.c
gtk/inspector/visual.c
gtk/inspector/visual.ui
gtk/meson.build

index 1f1c09d935738ac76e93bb22d7aaaa95bdd4d227..87affc189a6a6a6c546e48986e5e11f63c1e85eb 100644 (file)
@@ -37,22 +37,21 @@ G_BEGIN_DECLS
 typedef enum {
   GTK_DEBUG_TEXT            = 1 <<  0,
   GTK_DEBUG_TREE            = 1 <<  1,
-  GTK_DEBUG_UPDATES         = 1 <<  2,
-  GTK_DEBUG_KEYBINDINGS     = 1 <<  3,
-  GTK_DEBUG_MODULES         = 1 <<  4,
-  GTK_DEBUG_GEOMETRY        = 1 <<  5,
-  GTK_DEBUG_ICONTHEME       = 1 <<  6,
-  GTK_DEBUG_PRINTING        = 1 <<  7,
-  GTK_DEBUG_BUILDER         = 1 <<  8,
-  GTK_DEBUG_SIZE_REQUEST    = 1 <<  9,
-  GTK_DEBUG_NO_CSS_CACHE    = 1 << 10,
-  GTK_DEBUG_BASELINES       = 1 << 11,
-  GTK_DEBUG_INTERACTIVE     = 1 << 12,
-  GTK_DEBUG_TOUCHSCREEN     = 1 << 13,
-  GTK_DEBUG_ACTIONS         = 1 << 14,
-  GTK_DEBUG_RESIZE          = 1 << 15,
-  GTK_DEBUG_LAYOUT          = 1 << 16,
-  GTK_DEBUG_SNAPSHOT        = 1 << 17
+  GTK_DEBUG_KEYBINDINGS     = 1 <<  2,
+  GTK_DEBUG_MODULES         = 1 <<  3,
+  GTK_DEBUG_GEOMETRY        = 1 <<  4,
+  GTK_DEBUG_ICONTHEME       = 1 <<  5,
+  GTK_DEBUG_PRINTING        = 1 <<  6,
+  GTK_DEBUG_BUILDER         = 1 <<  7,
+  GTK_DEBUG_SIZE_REQUEST    = 1 <<  8,
+  GTK_DEBUG_NO_CSS_CACHE    = 1 <<  9,
+  GTK_DEBUG_BASELINES       = 1 << 10,
+  GTK_DEBUG_INTERACTIVE     = 1 << 11,
+  GTK_DEBUG_TOUCHSCREEN     = 1 << 12,
+  GTK_DEBUG_ACTIONS         = 1 << 13,
+  GTK_DEBUG_RESIZE          = 1 << 14,
+  GTK_DEBUG_LAYOUT          = 1 << 15,
+  GTK_DEBUG_SNAPSHOT        = 1 << 16
 } GtkDebugFlag;
 
 #ifdef G_ENABLE_DEBUG
diff --git a/gtk/gtkdebugupdates.c b/gtk/gtkdebugupdates.c
deleted file mode 100644 (file)
index b371603..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2016 Benjamin Otte <otte@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "config.h"
-
-#include "gtkdebugupdatesprivate.h"
-
-#include "gtksnapshot.h"
-
-/* duration before we start fading in us */
-#define GDK_DRAW_REGION_MIN_DURATION 50 * 1000
-/* duration when fade is finished in us */
-#define GDK_DRAW_REGION_MAX_DURATION 200 * 1000
-
-typedef struct {
-  gint64 timestamp;
-  cairo_region_t *region;
-} GtkDebugUpdate;
-
-static gboolean _gtk_debug_updates_enabled = FALSE;
-
-static GQuark _gtk_debug_updates_quark = 0;
-
-static void
-gtk_debug_updates_init (void)
-{
-  static gboolean inited = FALSE;
-
-  if (G_LIKELY (inited))
-    return;
-
-  _gtk_debug_updates_quark = g_quark_from_static_string ("-gtk-debug-updates");
-
-  inited = TRUE;
-}
-
-gboolean
-gtk_debug_updates_get_enabled (void)
-{
-  return _gtk_debug_updates_enabled;
-}
-
-void
-gtk_debug_updates_set_enabled (gboolean enabled)
-{
-  if (enabled)
-    gtk_debug_updates_init ();
-
-  _gtk_debug_updates_enabled = enabled;
-}
-
-gboolean
-gtk_debug_updates_get_enabled_for_display (GdkDisplay *display)
-{
-  if (gtk_debug_updates_get_enabled ())
-    return TRUE;
-
-  if (_gtk_debug_updates_quark == 0)
-    return FALSE;
-
-  return g_object_get_qdata (G_OBJECT (display), _gtk_debug_updates_quark) != NULL;
-}
-
-void
-gtk_debug_updates_set_enabled_for_display (GdkDisplay *display,
-                                           gboolean    enabled)
-{
-  if (enabled)
-    {
-      gtk_debug_updates_init ();
-
-      g_object_set_qdata (G_OBJECT (display), _gtk_debug_updates_quark, GINT_TO_POINTER (TRUE));
-    }
-  else
-    {
-      if (_gtk_debug_updates_quark != 0)
-        g_object_steal_qdata (G_OBJECT (display), _gtk_debug_updates_quark);
-    }
-}
-
-static void
-gtk_debug_update_free (gpointer data)
-{
-  GtkDebugUpdate *region = data;
-
-  cairo_region_destroy (region->region);
-  g_slice_free (GtkDebugUpdate, region);
-}
-
-static void
-gtk_debug_update_free_queue (gpointer data)
-{
-  GQueue *queue = data;
-
-  g_queue_free_full (queue, gtk_debug_update_free);
-}
-
-static void
-gtk_debug_updates_print (GQueue               *queue,
-                         const cairo_region_t *region,
-                         const char           *format,
-                         ...) G_GNUC_PRINTF(3,4);
-static void
-gtk_debug_updates_print (GQueue               *queue,
-                         const cairo_region_t *region,
-                         const char           *format,
-                         ...)
-{
-#if 0
-  GString *string = g_string_new (NULL);
-  va_list args;
-
-  g_string_append_printf (string, "%3u: ", g_queue_get_length (queue));
-
-  if (region)
-    {
-      cairo_rectangle_int_t extents;
-
-      cairo_region_get_extents (region, &extents);
-      g_string_append_printf (string, "{%u,%u,%u,%u}(%u) ",
-                              extents.x, extents.y,
-                              extents.width, extents.height,
-                              cairo_region_num_rectangles (region));
-    }
-
-  va_start (args, format);
-  g_string_append_vprintf (string, format, args);
-  va_end (args);
-
-  g_print ("%s\n", string->str);
-
-  g_string_free (string, TRUE);
-#endif
-}
-
-static gboolean
-gtk_window_manage_updates (GtkWidget     *widget,
-                           GdkFrameClock *frame_clock,
-                           gpointer       user_data)
-{
-  GQueue *updates;
-  GtkDebugUpdate *draw;
-  cairo_region_t *region;
-  gint64 timestamp;
-  GList *l;
-
-  updates = g_object_get_qdata (G_OBJECT (widget), _gtk_debug_updates_quark);
-  if (updates == NULL)
-    return FALSE;
-  timestamp = gdk_frame_clock_get_frame_time (frame_clock);
-
-  gtk_debug_updates_print (updates, NULL, "Managing updates");
-  /* First queue an update for all regions.
-   * While doing so, set the correct timestamp on all untimed regions */
-  region = cairo_region_create ();
-  for (l = g_queue_peek_head_link (updates); l != NULL; l = l->next)
-    {
-      draw = l->data;
-
-      if (draw->timestamp == 0)
-        {
-          draw->timestamp = timestamp;
-          gtk_debug_updates_print (updates, draw->region, "Setting timestamp to %lli\n", (long long) timestamp);
-        }
-
-      cairo_region_union (region, draw->region);
-    }
-  gtk_debug_updates_print (updates, region, "Queued update");
-  gdk_surface_invalidate_region (gtk_widget_get_surface (widget), region);
-  cairo_region_destroy (region);
-
-  /* Then remove all outdated regions */
-  do {
-    draw = g_queue_peek_tail (updates);
-
-    if (draw == NULL)
-      {
-        gtk_debug_updates_print (updates, NULL, "Empty, no more updates");
-        g_object_set_qdata (G_OBJECT (widget), _gtk_debug_updates_quark, NULL);
-        return FALSE;
-      }
-
-    if (draw->timestamp + GDK_DRAW_REGION_MAX_DURATION >= timestamp)
-      break;
-
-    gtk_debug_updates_print (updates, draw->region, "Popped region");
-    draw = g_queue_pop_tail (updates);
-    gtk_debug_update_free (draw);
-  } while (TRUE);
-
-  return TRUE;
-}
-
-void
-gtk_debug_updates_add (GtkWidget              *widget,
-                       const cairo_region_t   *region)
-{
-  GQueue *updates;
-  GtkDebugUpdate *draw;
-
-  if (!gtk_debug_updates_get_enabled_for_display (gtk_widget_get_display (widget)))
-    return;
-
-  updates = g_object_get_qdata (G_OBJECT (widget), _gtk_debug_updates_quark);
-  if (updates == NULL)
-    {
-      updates = g_queue_new ();
-      gtk_widget_add_tick_callback (widget,
-                                    gtk_window_manage_updates,
-                                    NULL,
-                                    NULL);
-      g_object_set_qdata_full (G_OBJECT (widget),
-                               _gtk_debug_updates_quark,
-                               updates,
-                               gtk_debug_update_free_queue);
-      gtk_debug_updates_print (updates, NULL, "Newly created");
-    }
-  else
-    {
-      GtkDebugUpdate *first = g_queue_peek_head (updates);
-
-      if (first->timestamp == 0)
-        {
-          cairo_region_union (first->region, region);
-          gtk_debug_updates_print (updates, first->region, "Added to existing region");
-          return;
-        }
-    }
-
-  draw = g_slice_new0 (GtkDebugUpdate);
-  draw->region = cairo_region_copy (region);
-  g_queue_push_head (updates, draw);
-  gtk_debug_updates_print (updates, draw->region, "Added new region");
-}
-
-void
-gtk_debug_updates_snapshot (GtkWidget   *widget,
-                            GtkSnapshot *snapshot)
-{
-  GQueue *updates;
-  GtkDebugUpdate *draw;
-  GdkRectangle rect;
-  gint64 timestamp;
-  double progress;
-  GList *l;
-  guint i;
-
-  if (!gtk_debug_updates_get_enabled_for_display (gtk_widget_get_display (widget)))
-    return;
-
-  updates = g_object_get_qdata (G_OBJECT (widget), _gtk_debug_updates_quark);
-  if (updates == NULL)
-    return;
-  timestamp = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
-  
-  gtk_debug_updates_print (updates, NULL, "Painting at %lli", (long long) timestamp);
-
-  for (l = g_queue_peek_head_link (updates); l != NULL; l = l->next)
-    {
-      draw = l->data;
-      if (timestamp - draw->timestamp < GDK_DRAW_REGION_MIN_DURATION)
-        progress = 0.0;
-      else if (timestamp - draw->timestamp < GDK_DRAW_REGION_MAX_DURATION)
-        progress = (double) (timestamp - draw->timestamp - GDK_DRAW_REGION_MIN_DURATION)
-                   / (GDK_DRAW_REGION_MAX_DURATION - GDK_DRAW_REGION_MIN_DURATION);
-      else
-        continue;
-
-      gtk_debug_updates_print (updates, draw->region, "Painting with progress %g", progress);
-      for (i = 0; i < cairo_region_num_rectangles (draw->region); i++)
-        {
-          cairo_region_get_rectangle (draw->region, i, &rect);
-          gtk_snapshot_append_color (snapshot,
-                                     &(GdkRGBA) { 1, 0, 0, 0.4 * (1 - progress) },
-                                     &GRAPHENE_RECT_INIT(rect.x, rect.y, rect.width, rect.height),
-                                     "Debug Updates<%g>", progress);
-        }
-    }
-}
-
diff --git a/gtk/gtkdebugupdatesprivate.h b/gtk/gtkdebugupdatesprivate.h
deleted file mode 100644 (file)
index e893a3d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2016 Benjamin Otte <otte@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __GTK_DEBUG_UPDATES_PRIVATE_H__
-#define __GTK_DEBUG_UPDATES_PRIVATE_H__
-
-#include "gtkwidget.h"
-
-G_BEGIN_DECLS
-
-
-gboolean        gtk_debug_updates_get_enabled                   (void);
-void            gtk_debug_updates_set_enabled                   (gboolean                enabled);
-gboolean        gtk_debug_updates_get_enabled_for_display       (GdkDisplay             *display);
-void            gtk_debug_updates_set_enabled_for_display       (GdkDisplay             *display,
-                                                                 gboolean                enabled);
-
-void            gtk_debug_updates_add                           (GtkWidget              *widget,
-                                                                 const cairo_region_t   *region);
-void            gtk_debug_updates_snapshot                      (GtkWidget              *widget,
-                                                                 GtkSnapshot            *snapshot);
-
-
-G_END_DECLS
-
-#endif /* __GTK_DEBUG_UPDATES_PRIVATE_H__ */
index 36100c03f56b0d670714be9a1e7a620e7eecd063..9b0009e59cf38b8953ef7405b6301899e06d7886 100644 (file)
 #include "gtkaccelmapprivate.h"
 #include "gtkbox.h"
 #include "gtkdebug.h"
-#include "gtkdebugupdatesprivate.h"
 #include "gtkdndprivate.h"
 #include "gtkmain.h"
 #include "gtkmediafileprivate.h"
@@ -157,7 +156,6 @@ DisplayDebugFlags debug_flags[N_DEBUG_DISPLAYS];
 static const GDebugKey gtk_debug_keys[] = {
   { "text", GTK_DEBUG_TEXT },
   { "tree", GTK_DEBUG_TREE },
-  { "updates", GTK_DEBUG_UPDATES },
   { "keybindings", GTK_DEBUG_KEYBINDINGS },
   { "modules", GTK_DEBUG_MODULES },
   { "geometry", GTK_DEBUG_GEOMETRY },
@@ -653,9 +651,6 @@ do_post_parse_initialization (void)
   signal (SIGPIPE, SIG_IGN);
 #endif
 
-  if (debug_flags[0].flags & GTK_DEBUG_UPDATES)
-    gtk_debug_updates_set_enabled (TRUE);
-
   gtk_widget_set_default_direction (gtk_get_locale_direction ());
 
   gsk_ensure_resources ();
index 202c5e9d0f39e4fc958cf882f74e972efca115c6..9ef73dee87f42bf3a6701bc9dd82feaa38a3d6f0 100644 (file)
@@ -5667,10 +5667,6 @@ cursor_blinks (GtkTextView *text_view)
 #ifdef DEBUG_VALIDATION_AND_SCROLLING
   return FALSE;
 #endif
-#ifdef G_ENABLE_DEBUG
-  if (GTK_DEBUG_CHECK (UPDATES))
-    return FALSE;
-#endif
 
   g_object_get (settings, "gtk-cursor-blink", &blink, NULL);
 
index 34fa7bd9b847c0195a3f757fa7936ba046f50642..92c8084cd5c1a301c714a906fe8fffcb4bd1ba2a 100644 (file)
@@ -41,7 +41,6 @@
 #include "gtkcssstylepropertyprivate.h"
 #include "gtkcsswidgetnodeprivate.h"
 #include "gtkdebug.h"
-#include "gtkdebugupdatesprivate.h"
 #include "gtkeventcontrollerlegacyprivate.h"
 #include "gtkgesturedrag.h"
 #include "gtkgestureprivate.h"
@@ -4383,7 +4382,6 @@ gtk_widget_queue_draw_region (GtkWidget            *widget,
   cairo_region_translate (region2, x, y);
 
 invalidate:
-  gtk_debug_updates_add (windowed_parent, region2);
   gdk_surface_invalidate_region (_gtk_widget_get_surface (widget), region2);
 
   cairo_region_destroy (region2);
index c5ef1ec4f3e2d8c4b1483cafa6a0e9b0cb453aec..e84f5cb1646bb103f9fbee06e3dd008fbeff46e2 100644 (file)
@@ -41,7 +41,6 @@
 #include "gtkcssrgbavalueprivate.h"
 #include "gtkcssshadowsvalueprivate.h"
 #include "gtkcssstylepropertyprivate.h"
-#include "gtkdebugupdatesprivate.h"
 #include "gtkdragdest.h"
 #include "gtkgesturedrag.h"
 #include "gtkgesturemultipress.h"
@@ -9306,8 +9305,6 @@ gtk_window_snapshot (GtkWidget   *widget,
       GtkWindowPopover *data = l->data;
       gtk_widget_snapshot_child (widget, data->widget, snapshot);
     }
-
-  gtk_debug_updates_snapshot (widget, snapshot);
 }
 
 /**
index 8e3506d47be4458ae2fe73bb5b687d0d40b62bda..6619fc7d172c353d9a0c7d9ad75486a0e2b4bf93 100644 (file)
@@ -24,7 +24,6 @@
 #include "gtkbox.h"
 #include "gtkcomboboxtext.h"
 #include "gtkcssproviderprivate.h"
-#include "gtkdebugupdatesprivate.h"
 #include "gtkdebug.h"
 #include "gtkprivate.h"
 #include "gtksettings.h"
@@ -66,7 +65,6 @@ struct _GtkInspectorVisualPrivate
 
   GtkWidget *debug_box;
   GtkWidget *rendering_mode_combo;
-  GtkWidget *updates_switch;
   GtkWidget *baselines_switch;
   GtkWidget *layout_switch;
   GtkWidget *touchscreen_switch;
@@ -222,25 +220,6 @@ font_scale_entry_activated (GtkEntry           *entry,
     update_font_scale (vis, factor, TRUE, FALSE);
 }
 
-static void
-updates_activate (GtkSwitch *sw)
-{
-  gboolean updates;
-
-  updates = gtk_switch_get_active (sw);
-  gtk_debug_updates_set_enabled_for_display (gdk_display_get_default (), updates);
-  redraw_everything ();
-}
-
-static void
-init_updates (GtkInspectorVisual *vis)
-{
-  gboolean updates = FALSE;
-
-  updates = gtk_debug_updates_get_enabled_for_display (gdk_display_get_default ());
-  gtk_switch_set_active (GTK_SWITCH (vis->priv->updates_switch), updates);
-}
-
 static void
 baselines_activate (GtkSwitch *sw)
 {
@@ -849,7 +828,6 @@ gtk_inspector_visual_init (GtkInspectorVisual *vis)
   init_font_scale (vis);
   init_scale (vis);
   init_rendering_mode (vis);
-  init_updates (vis);
   init_animation (vis);
   init_slowdown (vis);
   init_touchscreen (vis);
@@ -882,7 +860,6 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass)
 
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/inspector/visual.ui");
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, rendering_mode_combo);
-  gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, updates_switch);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, direction_combo);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, baselines_switch);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, layout_switch);
@@ -908,7 +885,6 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass)
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, font_scale_entry);
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorVisual, font_scale_adjustment);
 
-  gtk_widget_class_bind_template_callback (widget_class, updates_activate);
   gtk_widget_class_bind_template_callback (widget_class, direction_changed);
   gtk_widget_class_bind_template_callback (widget_class, rendering_mode_changed);
   gtk_widget_class_bind_template_callback (widget_class, baselines_activate);
index 14433754b61002917e8dfea95fbcff3a4564f571..aaf475cef9f2fb5b9a36d0df527e76b92327180c 100644 (file)
                     </child>
                   </object>
                 </child>
-                <child>
-                  <object class="GtkListBoxRow">
-                    <property name="activatable">0</property>
-                    <child>
-                      <object class="GtkBox">
-                        <property name="margin">10</property>
-                        <property name="spacing">40</property>
-                        <child>
-                          <object class="GtkLabel" id="updates_label">
-                            <property name="label" translatable="yes">Show Graphic Updates</property>
-                            <property name="halign">start</property>
-                            <property name="valign">baseline</property>
-                            <property name="xalign">0.0</property>
-                          </object>
-                        </child>
-                        <child>
-                          <object class="GtkSwitch" id="updates_switch">
-                            <property name="halign">end</property>
-                            <property name="valign">baseline</property>
-                            <property name="hexpand">1</property>
-                            <signal name="notify::active" handler="updates_activate"/>
-                          </object>
-                        </child>
-                      </object>
-                    </child>
-                  </object>
-                </child>
                 <child>
                   <object class="GtkListBoxRow">
                     <property name="activatable">0</property>
       <widget name="hidpi_label"/>
       <widget name="animation_label"/>
       <widget name="rendering_mode_label"/>
-      <widget name="updates_label"/>
       <widget name="baselines_label"/>
       <widget name="layout_label"/>
       <widget name="touchscreen_label"/>
index 3cfbf38e0cd56b8e53f076269fdd8b9157e2c3dc..5507ec3037e64ab3fd05f903fdd61c104556bbfc 100644 (file)
@@ -87,7 +87,6 @@ gtk_private_sources = files([
   'gtkcssvalue.c',
   'gtkcsswidgetnode.c',
   'gtkcsswin32sizevalue.c',
-  'gtkdebugupdates.c',
   'gtkeventcontrollerlegacy.c',
   'gtkfilechooserembed.c',
   'gtkfilechooserentry.c',